Amount ChoiceId Allowed PID AmountId MultiplyingFactor PF new ServiceTax ExtraTalkTime MRP Recharge Type FRC/SRC
13 na 285 100 1.1236 81.75 0.02 0 92 Freebie(BA)+PID Normal
59 na 285 101 1.1236 8.31 0.07 0 10 Freebie(BA)+PID Normal
13 na 289 100 1.1236 81.75 0.05 0 92 Freebie(BA)+PID Normal
2001 na 285 103 1.103 27.13 2.06 0 52 MA+DataPack+PID Normal
1572 na 285 104 na 0 na na na Blank MRP, rest OK Normal
1574 na 285 105 na 0 na na na Blank MRP, rest OK Normal
333300 na 285 106 1 0 0 0 3333 Freebie(BA)+MA+PID Normal
93 na 285 107 1.1236 100.53 0.11 0 114 Freebie(BA)+PID+SA Normal
78 na 285 108 1.1236 8.12 0.1 0 10 Freebie(BA)+PID Normal
79 na 285 109 1.1236 85.54 0.1 0 97 BA20 only Normal
13 na 290 100 1.1236 81.75 0.11 0 92 Freebie(BA)+PID Normal
####
13 na 285;289;290 100 1.1236 81.75 0.02;0.05;0.11 0 92 Freebie(BA)+PID Normal
####
#! /usr/bin/perl
use strict;
use warnings;
use Text::CSV;
my $basepath = "/home/eankuls/perl/vodafone/punjab";
my $IPfile = "Consolidated_output.csv";
my $OPfile = "Final_report.csv";
open (my $FH, "${basepath}/${IPfile}") or die "Can't open $IPfile file: $!";
open (my $WFH, ">>", "${basepath}/${OPfile}") or die "Can't open $OPfile file: $!";
my $csv = Text::CSV->new({
sep_char => ",",
binary => 1,
auto_diag => 1 });
my $row = $csv->getline($FH);
my $flag = 0;
my $flag1 = 0;
my (@row1, @row2);
while (my $row = $csv->getline($FH) ) {
my (@AllowedPID, @STax);
if ($flag == 0) {
@row1 = @{$row};
$flag++;
push (@AllowedPID, $row1[2]);
push (@STax, $row1[6]);
next;
}
else {
@row2 = @{$row};
}
if ($row1[0] == $row2[0] and $row1[3] == $row2[3] and $row1[8] == $row2[8])
{
if ($flag1 == 0 ) {
push (@AllowedPID, $row1[2]);
push (@STax, $row1[6]);
$flag1++;
}
push (@AllowedPID, $row2[2]);
push (@STax, $row2[6]);
next; }
else {
$row2[2] = join(";", @AllowedPID);
$row2[6] = join(";", @STax);
my $row_final = join (",", @row2);
print $WFH $row_final;
@row1 = @row2;
next;
}
#print WFH @row2;
$flag = 0;
$flag1 = 0;
}